import json


def get_first_item_in_root_list(json_file_path):
    """
    读取根为列表的JSON文件，返回列表中的第一个元素
    :param json_file_path: JSON文件路径（相对/绝对路径）
    :return: 列表第一个元素（若符合条件），否则返回None
    """
    try:
        # 1. 加载JSON文件
        with open(json_file_path, 'r', encoding='utf-8') as f:
            json_data = json.load(f)

        # 2. 先判断根是否为列表
        if not isinstance(json_data, list):
            print(f"错误：JSON根结构是{type(json_data).__name__}，不是列表，无法提取列表第一个元素")
            return None

        # 3. 判断列表是否为空（避免索引错误）
        if len(json_data) == 0:
            print("错误：JSON根列表为空，没有第一个元素可提取")
            return None

        # 4. 提取并返回列表第一个元素
        first_item = json_data[0]
        print(f"成功提取根列表的第一个元素（元素类型：{type(first_item).__name__}），内容如下：")
        return first_item

    # 捕获常见异常
    except FileNotFoundError:
        print(f"错误：未找到文件 → {json_file_path}（请检查路径）")
        return None
    except json.JSONDecodeError:
        print(f"错误：JSON格式无效 → {json_file_path}（请检查文件内容）")
        return None
    except Exception as e:
        print(f"未知错误：{str(e)}")
        return None


# ------------------- 调用示例 -------------------
if __name__ == "__main__":
    # 替换为你的JSON文件路径（如之前转换的"target_output.json"）
    your_json_file = "new.json"

    # 提取根列表的第一个元素
    root_list_first_item = get_first_item_in_root_list(your_json_file)

    # 格式化打印结果（更易读）
    if root_list_first_item is not None:
        print("-" * 60)
        print(json.dumps(root_list_first_item, ensure_ascii=False, indent=2))